1. Field of the Invention
This invention relates to computer networks and, more particularly, to novel systems and methods for connecting a computer as a node on a network.
2. The Background Art
Computer networks are actually many networks, or are defined at several levels of grouping and communication. The terms primary (e.g. LAN), secondary (e.g. routed) and tertiary (internetworked) network indicate the extent and complexity of a "network". A primary network may be thought of as the most fundamental connecting together of two nodes (e.g. computers, workstations, devices) in some manner. A secondary network is one including at least two primary networks connected by a router. A tertiary network is one including at least first and second primary networks separated from each other by a third (intervening) primary network. The third intervening primary network is connected to the first primary network by one router, and to the second primary network by another router. A secondary network, and especially a tertiary network, may also be referred to as internetworks.
Low level networking typically involves several devices exchanging data with one another. Transmission may be facilitated by a communication link, for example a hard wire, fiber-optic cable, radio frequency transmitter/receiver, or other physical communication mechanism, connecting a series of network cards. Network cards provide a mechanical and data connection between the communication link (e.g. fiber-optic, wire, or wireless) and any device to be connected to the network. A device may typically contain a processor, such as a computer or peripheral equipment. The processor may be programmed with communication software (programming instructions) for communicating data between the device and the network communication link. Each such device (computer or peripheral) is a node on the network. Some networks have a server.
A server is a computer connected to a network via a network card and is programmed to act as a traffic manager and storage device for data being transmitted over the network by the various connected nodes. A hard wire interconnected to a group of network cards with attached computers, with one of those computers acting as a server, is a typical network. In other networks, every device is a server.
A primary network is the network with which a node communicates most directly. A primary network is the most fundamental system that can be called a network. A secondary network is a network connected in some way to a node, but exchanging data with a node through a router. A router is a computer connected to at least two primary networks.
By secondary network is meant routed networks comprised of primary networks interconnected by a router. Because a router is a computer connected to at least two networks, it may be programmed to manage the communication of data between nodes on different primary networks. Two nodes, each connected to a different primary network, with those two different primary networks directly communicating through (e.g. sharing, typically directly connected through) a single router constitute a secondary network.
A tertiary network is one in which data may be exchanged between two nodes on different primary networks, which primary networks do not share a router. When a primary network is connected to more than one router, and each such router is connected to more than one primary network, a tertiary network exists. Since tertiary networks may extend from one primary network to another through several intervening primary networks and routers, the routers must be programmed to receive and forward messages from nodes that arc foreign to any given router. Foreign may be thought of as describing any device or data pertaining to a primary network that is not connected to a router shared with the subject network. Thus, as the name network implies, a tertiary network can extend indefinitely from router to router to router via intervening primary networks. (Theoretically virtually forever, within the constraints of the laws of electrophysics.)
A wireless communication system may not require any hard wire connection. In general, a link between a node and a primary network may be wireless. Each node may contain a network card for sending and receiving data by wireless transmission with respect to another device. Thus an entire primary network may be wireless. Also, a network between two routers forming a wide area network (WAN), may be wireless. Alternatively, a network using a hard wire may have access points. An access point bridges between a hard wire associated with a primary network and a node communicating by a wireless communication link with that primary network. An access point includes a wireless transmitter and receiver for communicating with a wireless network card in a node, as well as a connector communicating with the hard wire of the network. Thus, all access point may be thought of as a transmitter and receiver for communicating data between a network and a node not hard wired into that network.
As computer network technology has grown to encompass tertiary networks, network level addressing has become more than a locally administered task. By address is not meant MAC layer address in an ISO/OSI data-link layer. That addressing is resolved by an access point as a user roams. The need is for unambiguous ISO/OSI network layer addressing during roaming and dynamic address changing.
A data package (message, packet, stream) needs to be communicated to a destination address. A source address is needed for a response to be returned. An address may be thought of as a one or more numbers, digits, characters, words, bytes, combination thereof, or the like included in a data transmission, identifying a sender or receiver.
As internetworks, (tertiary networks) become very large, a scheme is needed for easily addressing all the interconnected nodes interconnected at a network ISO/OSI level. (International Organization for Standardization Open Systems Interconnection model.) Remote (foreign, more than one hop distant) nodes are not controllable by a network. A single message to or from a foreign node must be transmissible and receivable without confusion.
For example, when a single computer connects to several peripheral devices, the computer may assign, or a user may assign, all address to each peripheral device. When several nodes (devices, computers, etc.) are connected in a network, software in a network server may control, assign, or coordinate addresses. For example, a network manager (user) may program the server on a primary network to recognize a unique number for each node connected to the network. Thus a server could receive and deliver data with respect to each node. Two routers could likewise be programmed to communicate and coordinate addresses. However, as soon as three routers are involved, foreign nodes become intractable to address without a global addressing scheme. Moreover, routers may connect without practical limitation as to numbers of primary networks to which each may connect.
To address this problem organizations exist for administering global addresses to devices that a user desires to connect to a network. Thus, schemes exist for a user to acquire a global address by which a device may be known, regardless of network connection. For example, users on a network or service receive an assigned address. Also, every network-connectable device connects to a network card, often within the envelope of the device. Each network card has assigned by the Institute for Electrical and Electronic Engineers (IEEE standard 802) identification. The identification is unique to that card at the Media Access Control, or MAC, sublayer of the ISO/OSI data-link level.
Any primary network communicates data corresponding to addresses of nodes connected to that network. Similarly, a router may communicate data associating the router with addresses of nodes connected to primary networks accessed through that router.
Unfortunately, a user logging on to a network must configure a node. Configuration may be thought of as programming a node for setting up connections and protocols. A node may need to identify other devices to be addressed, or to identify itself to a router assigning the address of the node. Thus, once configured, a node may send and receive messages. However, logging onto a network and configuring a node's system typically takes substantial time. Moreover, knowledge of certain commands, codes and the like is typically required of a user. Also, whenever a node is not going to be available any longer, a user must log off the network so that the network does not treat the absence of a node as an error.
No primary network extends indefinitely. Some limitations may arise due to security, media change, traffic load, addressing, or physical limits. For example, radio signals are shielded by metal preventing transmission. Obstructions limit an infrared line of sight. Thus, a wireless network is typically limited to a single floor of a building, and to a specific range of distance. Even hard-wired networks are constrained by limitations of power, integrity of signal transmission, and interference, associated with distances traversed by a primary network.
Because no primary network can extend indefinitely, and because of the administrative difficulties on system administrators of network servers and on individual users having to log on and off to move about between primary networks, roaming is desirable. Roaming may be thought of as communication by a node (e.g. computer, processor, peripheral device) at more than one connection point on an inter-network. That is, a roaming device may be a computer carried by an individual walking over a factory floor serviced by several wireless LANs.
Roaming may include disconnecting a node from a first primary network followed by connecting the node to a second primary network without intermediate logging off and on. Several examples of roaming situations are instructive. For example, on a factory floor, personnel may move from location to location logging data associated with manufacturing or shipping operations. With the advent of stylus based input devices, many operations formerly done by hand, such as recording counts while inventorying stock, for example, are now done with an input pad and stylus. Similarly, a host of tasks once done by hand, and involving a person who moves from location to location throughout a day, are now computerized but must still be accommodated by roaming.
Roaming is impossible in some networks. That is, a system manager must configure a network server to recognize a new node. Meanwhile, in such networks a configuration of more than one primary network to simultaneously accept a node's global address may not be possible. Thus, the node cannot be moved from one primary network to another at the will of an individual user.
Even in networks that permit roaming, addressing may present a major difficulty for secondary and tertiary networks. For example, in the addressing and routing process to reach a mobile node, three routers may typically be required to be loaded with different specialized software that must be available and upgraded in any network to which a mobile node roams in an internetwork. Networks today do not allow a node to roam to a network in an internetwork that does not have specialized software hosted on specialized processors forwarding messages, and specialized processors for logging on. That is, mobile devices may not generally log on to a network remote from their "home" network, unless the remote network includes processors programmed specifically for forwarding messages, and processors programmed specifically for logging the mobile devices on to the network. The requirements for the existence and upkeep of such systems inhibits roaming.
What is needed is a plug-and-play system. A system is needed in which all of the addressing of a node is transparent to a user. Moreover, a system is needed that requires less of a remote network, such as fewer specially-programmed processors (routers, foreign agents, etc. ) during roaming, as well as fewer upgrades of software by a system manager.
Disruption by a node may be a serious problem in network software hosted on nodes. A server may "hangup" on a node when the node has dropped out. That is, for example, a server periodically queries a node to determine whether or not the node is still connected to that network. Thus, if a proper response is not received, the server closes the "session" or data connection with the missing node, but may instead wait indefinitely for an event that never comes. One example is an application that is waiting for a response over a network, and has control over a node temporarily, that is not relinquished when the response never arrives.
An application is a computer program including one or more instructions. An application operates in the highest OSI layer. An application is also sometimes referred to as a computer program. When an application is running on a node, or when a network session is running, an application may be relying on the network connection to pass data.
When an application requires data through the network connection and the data is not forthcoming because the connection between the network and node has been disrupted, the application may "crash," or instead "hang" the node. Hanging means that a device has ceased to respond to data. That is, a processor may cease to respond to instructions, commands, inquiries and the like because some instruction is awaited by the processor, and the instruction is not forthcoming.
Hanging is different from crashing in that an application or system (operating system) may crash by ceasing all operation. Crashing usually results in the computer requiring a re-boot. Hanging may require a re-boot, but is usually characterized by the output device (e.g. monitor or display) remaining as it is without providing any further output nor prompts, and not responding to any inputs.
Another problem for mobile nodes on an interact work is system watchdogs. System watchdogs are programs resident in a server for monitoring the status of connections between the network and nodes. When a connection is disrupted the watchdogs initiate disconnection of the offending node by the server.
If a file is open and the connection is broken, the connection must come back before the node tries to read data from the server. If the connection does not come back in time, the node or application on the node may crash regardless of whether or not the router's connection can be re-established. Thus the node is crashed and the fact that the connection is remade does not bring the node back.
Node disruptions and dropouts are most often caused by events that may happen during the life of a connection (e.g. session). Generally, these events are related to activity that interrupts the continuity of a network node address, the continuity of a physical network connection, or the continuity or quality of a network session.
One need is that of dynamically resolving the changing of addresses in a network. Some causes of dynamic changing of addresses are roaming and "hot swapping" of a network interface card in a node without logging off or shutting down either the node or the hosted applications.
By hot swapping is meant the removal and replacement of a network card in the network slot of a computer without shutting down, logging off a network, or closing applications. For example, a user may withdraw a network card and replace that card later with the same or a different network card. Thus, a computer may be disconnected from a network simply by withdrawing the computer from the network card associated with the network. Similarly, a network card may be hot swapped with respect to the network carrier, such as a line, wireless connection, fiber-optic cable, twisted pair, coaxial cable, or the like that carries the electronic signal between a node and a network server or other devices on the network.
Another need is graceful recovery or adaptation to different or reduced performance by a network (e.g. by a node, router, or server), in lieu of crashing or hanging. For example, suspension and recovery from a disrupted connection resulting from sleeping, moving out of range of a wireless access point, breaking a wired connection, and or a time lag during a hot swap of network cards such as PCMCIA cards.
Another need is storing and binding two or more actual addresses, as well as a virtual address, each to be selectively useable for a single client node on a single network or an internetwork. A device may not be addressed at more than one real address at a time, although a router may present different addresses for itself to different networks. However, a need exists to selectively and dynamically switch between network interface cards in a node having multiple slots for such cards. For example, enablement of automatic switching between a default and a backup card when a default card drops out is very desireable.
A user-transparent, mobile interface for networks and internetworks is needed that permits roaming without requiring a new home router to exist at a new remote network for logging-on. Also new remote network after roaming. Moreover, a system is needed that does not require pre-existing specialized equipment at a remote location to which a node may roam on an internetwork. Rather, what is needed is a system that permits a mobile node to access the logging on and roaming features from any remote network operating under a standard network protocol (such as IPX), so long as the remote network is part of an internetwork containing a router configured for providing a constant virtual address and binding it to an actual address for the mobile node. Otherwise, mobility is impaired when a location does not have the right type of hardware or software locally resident. Moreover, software upgrading and version control become serious burdens at all the remote locations. A system that permits logging on to a home router virtually any number of hops away on an internetwork, and roaming likewise with a minimum of software and hardware is needed.